package com.hd123.rumba.gwt.base.client;

import java.util.Date;

import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.NumberFormat;

/**
 * 数字、日期等格式化对象
 * 
 * @author LiQi
 *
 */
public class Format {

  /** 数量 */
  public static NumberFormat QTY_FORMAT = NumberFormat.getFormat("0.###");

  /** 价格 */
  public static NumberFormat PRICE_FORMAT = NumberFormat.getFormat("0.00");

  /** 金额 */
  public static NumberFormat MONEY_FORMAT = NumberFormat.getFormat("0.00");

  /** 日期+时间 */
  public static DateTimeFormat DATETIME_FORMAT = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss");

  /** 日期 */
  public static DateTimeFormat DATE_FORMAT = DateTimeFormat.getFormat("yyyy-MM-dd");

  /** 时间 */
  public static DateTimeFormat TIME_FORMAT = DateTimeFormat.getFormat("HH:mm:ss");

  /**
   * 格式化数量
   * 
   * @param value
   * @return
   */
  public static String formatQty(Double value) {
    return value == null ? "" : QTY_FORMAT.format(value.doubleValue());
  }
  
  /**
   * 格式化价格
   * 
   * @param value
   * @return
   */
  public static String formatPrice(Double value) {
    return value == null ? "" : PRICE_FORMAT.format(value.doubleValue());
  }

  /**
   * 格式化金额
   * 
   * @param value
   * @return
   */
  public static String formatMoney(Double value) {
    return value == null ? "" : MONEY_FORMAT.format(value.doubleValue());
  }
  
  /**
   * 格式化日期+时间
   * 
   * @param value
   * @return
   */
  public static String formatDateTime(Date value) {
    return value == null ? "" : DATETIME_FORMAT.format(value);
  }

  /**
   * 格式化日期
   * 
   * @param value
   * @return
   */
  public static String formatDate(Date value) {
    return value == null ? "" : DATE_FORMAT.format(value);
  }
  
  /**
   * 格式化时间
   * 
   * @param value
   * @return
   */
  public static String formatTime(Date value) {
    return value == null ? "" : TIME_FORMAT.format(value);
  }
  
}
